home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 June
/
EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso
/
earcd
/
games2
/
graala.lha
/
graal.main
< prev
next >
Wrap
Text File
|
1996-04-21
|
21KB
|
466 lines
/* This is the graal.main script file for Olaf Longhair,
/* the first ever GRAAL Graphic Adventure. Heavily annotated...
/* NAME: string
/* -> The name of the adventure
/*
NAME: "Olaf Longhair - GRAAL Demo Version"
/* VERSION: string
/* -> The version number of the adventure
/*
VERSION: version 1.0
/* MAX_CACHE: number of files
/* -> This number is the maximum number of files to be
/* buffer in RAM: of machines with memory to spare.
/*
/* Set to 0 during testing and to 100 when playing.
/*
/* Normally, the true number of cached files are
/* calculated according to the available memory - if
/* you have put together a weird game where your
/* files average more then 50K, you may want to lower
/* the cache to just a few files - say 10 or 20. Normally,
/* 100 should be just fine, though.
/*
MAX_CACHE: 100
/* WALK_BUTTON: LEFT or RIGHT
/* -> This is the button used for "walking about"
/*
WALK_BUTTON: LEFT
/* EXIT_COL: colour
/* -> The colour of the text marking the exits
/*
EXIT_COL: 8
/* OBJ_COL: colour
/* -> The colour of the text marking the objects
/*
OBJ_COL: 1
/* START_ROOM: roomnumber;entrance
/* -> This is the room where the whole adventure starts
/*
START_ROOM: 1;1
/* MAX_ROOM: rooms
/* -> The highest room number used. Don't forget to alter this
/* when higher numbered rooms are added to the game!!
/*
MAX_ROOM: 50
/* MAX_SECTION: sections
/* -> The highest section number used. Don't forget to alter this
/* as sections are added to the game!
/*
MAX_SECTION: 15
/* MAX_DACT: direct_room_actions
/* -> The maximum number of direct room actions used anywhere in a
/* room file. Keep an eye on this value as your adventure
/* gets more complex...
/*
MAX_DACT: 50
/* MSGFONT: fontname;fontsize
/* -> The specified font and fontsize must be installed in the
/* FONT drawer of the currently used boot disk. Also, remember
/* to run FIXFONTS on the FONTS: drawer, or it won't work.
/* This font is used for on-screen messages & dialogue.
/*
MSGFONT: hires-5a;8
/* COMFONT: fontname;fontsize
/* -> The specified font and fontsize must be installed in the
/* FONT drawer of the currently used boot disk. Also, remember
/* to run FIXFONTS on the FONTS: drawer, or it won't work.
/* This font is used in the sentence area.
/*
COMFONT: garnet;9
/* TITLEFONT1: fontname;fontsize
/* -> The specified font and fontsize must be installed in the
/* FONT drawer of the currently used boot disk. Also, remember
/* to run FIXFONTS on the FONTS: drawer, or it won't work.
/* This font is used for title screen text.
/*
TITLEFONT1: emerald;20
/* TITLEFONT2: fontname;fontsize
/* -> The specified font and fontsize must be installed in the
/* FONT drawer of the currently used boot disk. Also, remember
/* to run FIXFONTS on the FONTS: drawer, or it won't work.
/* This font is used for title screen text.
/*
TITLEFONT2: times;14
/* COMMAND_AREA: file
/* -> Specify the name of the picture file containing the graphics
/* for the command area. (Don't alter sizes of boxes, buttons or
/* the verb names in version 1!) If you use the default file
/* graal.comm, you don't have to load it - it's already in memory.
/*
COMMAND_AREA: DEFAULT
/* DLG_AREA: file
/* -> Specify the name of the picture file containing the graphics
/* for the dialogue input area. (Don't alter sizes of the lines
/* in version 1!) If you use the default file graal.dlg, you don't
/* have to load it - it's already in memory.
/*
DLG_AREA: DEFAULT
/* RESOURCE: file
/* -> This file is an Amos Pro dialogue resource bank used for
/* dialogue boxes, requesters, etc.
/*
/* The style of the reqources in the Olaf_Resource.Abk match
/* that of the graal.comm and graal.dlg graphic files.
/* DEFAULT means GRAAL's built-in bank will be used.
/*
RESOURCE: DEFAULT
/* GLOBALOBJS: number
/* -> Specifies the number of global objects. These are the
/* objects which can be used throughout the whole adventure,
/* and also all objects with which you can talk using dialogues
/*
GLOBALOBJS: 50
/* SECTIONOBJS: number
/* -> Specifies the number of objects that only exists when
/* visiting a certain section.
/*
/* Note that all object flags, new
/* names and states are lost when the section is exited,
/* so any states must be saved and restored using
/* room flags!!! SOBJn uses the min value as its offset.
/*
SECTIONOBJS: 10
/* ROOMOBJS: min;max
/* -> Specifies the number of objects that only exist within one room.
/* Note that no altered flags, states or names for these objects
/* remain between visits to the room: Any state changes must
/* be saved and stored using room flags!!! ROBJn uses the min
/* value as its offset.
/*
ROOMOBJS: 20
/* N_GLOBALBOBS: number
/* -> Specifies the number of global BOBs that can be
/* used. Actual BOB numbers for these start with 11 and
/* not 1, since BOB image bank slots 1-10 are reserved
/* for system use.
/*
N_GLOBALBOBS: 40
/* N_SECTIONBOBS: min;max
/* -> Specifies the number of section BOB images. These are
/* replaced each time the game enters a new section
/*
N_SECTIONBOBS: 30
/* N_ROOMBOBS: number
/* -> Specifies the number of room BOB images. These are
/* always replaced when entering a new room
/*
N_ROOMBOBS: 70
/* CLPART: filename
/* -> This is the screen from which all general BOBs
/* are grabbed. Once you've grabbed the graphics
/* BOBS, another CLPART and further BOBS may be specified...
/*
CLPART: Olaf_Original.iff
/* BOBS: no;startbob;x1;y1;w;h;x-offset;hotspot
/* -> This statement grabs a single BOB image or a horizontally arranged
/* sequence of BOBs. BOB image numbers 1-10 (as specified by startbob)
/* are used for special purposes, and some of them must be specified
/* by loading an image in using BOBS, namely:
/* 3 - Up arrow for use in the control area lists
/* 4 - Down arrow -"-
/* 5 - Blank plate used to erase up and down arrows (1 and 2)
/* 6 - Cut-scene indicator (a movie camera in Olaf).
/*
/* Let's grab Olaf!!!
/*
BOBS: 10;11;1;1;31;47;32;0
BOBS: 10;21;1;49;31;47;32;0
BOBS: 10;31;1;97;31;47;32;0
CLPART: Olaf_Symbols.iff
BOBS: 3;3;0;0;18;16;30;0
BOBS: 1;6;90;0;64;32;0;$11
/* Here is data describing the standard attributes of the main character
/*
/* CHARACTER_HEIGHT: pixels
/* -> approximate or "average" height
/*
CHARACTER_HEIGHT: 40
/*
/* CHARACTER_WIDTH: pixels
/*
CHARACTER_WIDTH: 22
/*
/*
/* CHARACTER_COL: colorindex
/* -> Tells the colour of the dialogue text
/*
CHARACTER_COL: 9
/*
/* LINE_LENGTH: characters
/* -> This is the maximum number of characters on one line when
/* text is displayed with SAY, THINK, etc. Line breaks are
/* inserted automatically. You can control line breaks manually
/* by providing \ characters in the string with shorter
/* intervals than this number indicates.
/*
LINE_LENGTH: 34
/*
/* STILL_xxxxx: BOB image
/* -> These are the character's standard poses when faces in
/* the respective direction.
/* ($8000+hex number makes the image flip horisontally.)
/*
STILL_RIGHT: 14
STILL_LEFT: $800E
STILL_BACK: 12
STILL_FRONT: 11
/*
/* PAUSE_xxxxx: BOB image
/* -> These are the character's standard poses when pausing
/* between moves. (More "ready-for-action" poses than the
/* STILL_xxxxxx images, although they may be the same if
/* you like it that way.)
/* ($8000+hex number makes the image flip horisontally.)
/*
PAUSE_RIGHT: 13
PAUSE_LEFT: $800D
PAUSE_BACK: 12
PAUSE_FRONT: 11
/*
/* WALK_xxxxx: amalsequence
/* -> These are the default animation sequences for moving in the
/* four main directions.
/*
WALK_RIGHT: A 0,(16,6)(15,6)(14,6)(17,6)(18,6)(17,6)(14,6)(15,6)
WALK_LEFT: A 0,($8010,6)($800F,6)($800E,6)($8011,6)($8012,6)($8011,6)($800E,6)($800F,6)
WALK_AWAY: A 0,(29,8)(30,8)(31,8)(30,8)
WALK_TOWARD: A 0,(26,8)(27,8)(28,8)(27,8)
/*
/* WALK_SPEED: characterspeed
/* -> Adjust this number to match the animation speed, making the
/* character actually walk around rather than "float about".
/*
WALK_SPEED: 1.2
/* TALK_MAP: stillimage;animation
/* -> The speech animation used depends upon the still image
/* displayed before it begins. This keyword maps the animations
/* to the still images. Max. 8 talk_maps may be specified.
/* direction is one of FRONT, BACK, RIGHT or LEFT. If imagenumbers
/* point to reverse images, the correct form is $FFFF8000+$imagenumber
/*
TALK_MAP: 11;A 0,(20,18)(11,12)(20,12)(11,6)(19,12)(11,12)(20,6)(11,6)
TALK_MAP: 12;A 0,(21,12)(12,6)(22,12)(12,12)(22,9)(12,6)
TALK_MAP: 13;A 0,(20,18)(11,12)(20,12)(11,6)(19,12)(11,12)(20,6)(11,6)
TALK_MAP: $FFFF800D;A 0,(20,18)(11,12)(20,12)(11,6)(19,12)(11,12)(20,6)(11,6)
TALK_MAP: 14;A 0,(23,18)(14,12)(23,12)(14,6)(23,12)(14,12)(23,6)(14,12)(24,6)(14,18)
TALK_MAP: $FFFF800E;A 0,($8017,18)($800E,12)($8017,12)($800E,6)($8017,12)($800E,12)($8017,6)($800E,12)($8018,6)($800E,18)
/* HANDLE_MAP: stillimage;handlelow;handlemid;handlehigh
/* -> sets the animations for character handling things much the
/* same way as TALK_MAP maps the speech animations.
HANDLE_MAP: 11;A 1,(11,12)(36,1);A 1,(11,12)(34,1);A 1,(11,12)(35,1)
HANDLE_MAP: 12;A 1,(12,12)(39,1);A 1,(12,12)(39,1);A 1,(12,12)(40,1)
HANDLE_MAP: 14;A 1,(14,12)(32,1);A 1,(14,12)(33,1);A 1,(14,12)(37,1)
HANDLE_MAP: $FFFF800E;A 1,($800E,12)($8020,1);A 1,($800E,12)($8021,1);A 1,($800E,12)($8025,1)
/*
/* *** Global Objects follow below ***
/*
/* OBJECT: no;name;startloc;visible;startbob;startimg/anim;xpos;ypos;
/* coffsx;coffsy;cstill;prep;pickable;animch;hotspx;hotspy;handlepos
/* -> This is the data for an object.
/* no = object number, used in coding so if you change this be sure
/* to change or erase all code that goes with it...
/* name = a string containing the (initial) inventory name for the object
/* startloc = object starts in room number ...
/* visible = is the object shown? 0 = False, -1 = True
/* startbob = starting bob number for displaying object
/* startimg/startanim = bob image or amalsequence used for this object.
/* LBOBs can be used, as long as these LBOB numbers
/* are valid for each and every room where the
/* object can appear!
/* xpos;ypos = display object in this position.
/* coffs;coffsy = offset of character relative object when handling
/* cstill = still image of character when walking to object
/* prep = object preposition. If not blank, "Use" will require 2nd object
/* pickable: Can character pick this up? 0 = False, -1 = True
/* animch: Amal channel to use for this object
/* hotspx;hotspy: Hotspot setting. Used for information only, since the
/* hotspots are actually set for each BOB image, but having them
/* here helps understand the x,y,coffsx, and coffsy settings
/*
/* handlepos: LOW, MID or HIGH determines animation for handling object.
/* type: string of characters indicating object type.
/* Standard types: M=male character, F=female character, G=group
/* A=animal, C=container, D=Dead, V=Alive
/* -=Abstract (unreachable, consisting of air, etc.)
/* Other types: S=Stone, W=Wood, T=Metal, L=Liquid, - it's up to you.
/* w1;w2;w3: have to look these up in the grammar book. Anyway, deals with
/* how you speak about the things, as you can see.
/*
/* OBJECT: no;name;startloc;visible;bob;startimg/anim;xpos;ypos;
/* coffsx;coffsy;cstill;prep;pickable;animch;hotspx;hotspy;handlepos;
/* types;w1;w2;w3
/*
OBJECT: 1;sheep\bones;1;-1;59;RBOB17;67;219;5;-104;11;with;-1;0;3;124;MID;DG;two;these;the
OBJECT: 2;pawnshop\owner;2;0;37;RBOB30;396;84;14;-10;$800E; ;0;7;0;0;MID;MV;a;this;the
OBJECT: 3;guard;6;-1;58;RBOB3;183;102;20;0;$800E; ;0;7;0;0;MID;MV;a;this;the
OBJECT: 4;piece of\paper;8;0;56;RBOB6;66;119;10;0;$800E; ;-1;0;0;0;LOW;WD;a;this;the
OBJECT: 5;bearded\man;1;-1;55;A 0,(RBOB9,36)(RBOB8,48)(RBOB9,24)(RBOB8,36)(RBOB9,36)(RBOB8,48)(RBOB9,24)(RBOB8,36)(RBOB9,64)(RBOB7,100);150;94;-20;20;14; ;0;8;0;0;MID;MV;a;this;the
OBJECT: 6;map;8;-1;54;RBOB3;160;86;0;20;12; ;0;0;0;0;HIGH;WD;a;this;the
OBJECT: 7;Ali;4;-1;59;A 1,(RBOB2,6);123;117;15;0;$800E; ;0;8;0;0;MID;MV; ; ;the
OBJECT: 8;guard;9;-1;59;RBOB7;166;81;-20;0;14; ;0;7;0;0;MID;MV;a;this;the
OBJECT: 9;nomad;2;-1;59;A 0,(RBOB1,6)(RBOB2,12)(RBOB1,6)(RBOB2,200);55;108;20;1;$800E; ;0;9;0;0;MID;MV;a;this;the
OBJECT: 10;lamp;10;0;40;RBOB6;294;103;0;-5;12; ;-1;0;0;0;MID;WD;a;this;the
OBJECT: 11;camel;2;-1;57;A 0,(RBOB7,200)(RBOB9,100)(RBOB7,400)(RBOB10,100)(RBOB9,200);87;110;32;2;$800E; ;0;8;0;0;MID;AV;a;this;the
OBJECT: 14;fishnet;3;-1;58;RBOB2;20;81;10;3;$800E;with;-1;0;0;0;MID;D;a;this;the
OBJECT: 15;captain;3;-1;57;PTRN 1;244;58;30;10;$800E; ;0;9;0;0;MID;MV;a;this;the
OBJECT: 21;feather;3;-1;53;RBOB29;147;74;10;0;$800E;with;-1;0;0;0;LOW;D;a;this;the
OBJECT: 24;small knife;0;0;0;99;0;0;0;0;0;on;-1;0;0;0;MID;TD;a;this;the
OBJECT: 27;parcel;0;0;0;0;0;0;0;0;0; ;-1;0;0;0;MID;WD;a;this;the
OBJECT: 28;wrapping\paper;0;0;0;0;0;0;0;0;0; ;-1;0;0;0;MID;WD;a piece of;this;the
OBJECT: 30;dictionary;0;0;0;0;0;0;0;0;0;with;-1;0;0;0;MID;WD;a;this;the
/* DLG: no;dlgobj;dlgcol;dlgoffs;dlganim
/* -> This sets up the characters and animations used
/* by the various dialogue partners. You MUST one DLG statement
/* for each dialogue there is, but you can actually use any of them
/* in any of the RESP statements of any dialogue! (Flexible, but
/* not really that useful.)
/*
/* dlgcol = the colour index of the dialogue text
/* dlgoffs = dialogue text offset from character hotspot
/*
/* 1 is bartender
DLG: 1;5;11;-20;A 0,(RBOB4,12)(RBOB6,24)(RBOB4,18)(RBOB6,6)(RBOB8,12)(RBOB4,18)(RBOB9,20)(RBOB8,12)(RBOB9,30)
/* 2 is nomad
DLG: 2;9;11;-26;A 0,(RBOB4,24)(RBOB3,18)(RBOB4,30)(RBOB3,24)(RBOB5,6)
/* 3 is captain
DLG: 3;15;12;-20;A 0,(RBOB4,12)(RBOB22,24)(RBOB4,48)(RBOB22,36)(RBOB4,18)(RBOB23,12)
/* 4 is Ali Harrod
DLG: 4;7;11;-30;A 0,(RBOB3,24)(RBOB2,24)(RBOB3,12)(RBOB2,18)(RBOB4,24)
/* 5 is pawn shop keeper
DLG: 5;2;11;-20;A 0,(RBOB30,18)(RBOB31,12)(RBOB30,18)(RBOB31,16)(RBOB32,12)
/* 6 is guard in mountain pass
DLG: 6;3;11;-40;A 0,(RBOB1,36)(RBOB2,28)(RBOB1,22)(RBOB2,18)(RBOB1,48)(RBOB2,24)(RBOB3,64)
/* 7 is guard in palace garden
DLG: 7;8;11;-40;A 0,(RBOB9,36)(RBOB8,28)(RBOB9,22)(RBOB8,18)(RBOB9,48)(RBOB8,24)(RBOB7,64)
/* Actions follow below ***
/*
/* ACTION: verbno;condition;...;command;...
/*
/* Action 1 - Give
/* ---------------
/*
ACTION: 1;IFPICK;SAY I don't see the point.;EXIT
ACTION: 1;SAY I can't do that.;EXIT
/*
/* Action 2- Pick up
/* -----------------
/*
ACTION: 2;IFCARR;SAY I already have it!;EXIT
ACTION: 2;IFPICK;MOBJ;HANDLE;W 12;PICK;HANDLE -1;EXIT
ACTION: 2;IFTYPE F|M;SAY You can't really mean that!;EXIT
ACTION: 2;IFTYPE -;SAY That was rather far-fetched, wasn't it?;EXIT
ACTION: 2;SAY I can't pick that up.|Sorry, that is not possible.;EXIT
/*
/* Action 3 - Use
/* --------------
/*
ACTION: 3;IFOBJ 1;SAY Not right now, I think.;EXIT
ACTION: 3;IFOBJ 24;IFOBJ2 1;IFOF 1,1=0;LIGHTS OFF;W 50;LIGHTS ON;CLPART TwoHours.iff;BOBS 1,49,0,0,111,103,0,300;BOBON 10,160,308,49;W 300;BOBOFF 10;SAY Okay - Now they are almost perfect cubes. So what?;BOBS 1,49,0,0,2,2,0,0;CLPART OFF;SETOF 1,1=1;EXIT
ACTION: 3;IFOBJ 24;IFOBJ2 1;IFOF 1,1=1;SAY You don't think I've spent enough time on that already?;SAY I do.;EXIT
ACTION: 3;IFOBJ 24;IFOBJ2 14;SAY Why destroy a good net?;EXIT
ACTION: 3;IFOBJ 24;IFTYPE2 W;SAY I can't very well go around carving my initials in everything!;EXIT
ACTION: 3;IFOBJ 24;IFTYPE2 T;SAY I think that would hurt the knife more than the #OBJ2!;EXIT
ACTION: 3;IFOBJ 24;IFTYPE2 A;SAY I am not a vivisectionist!;EXIT
ACTION: 3;IFOBJ 24;IFTYPE2 V;SAY That would be against the law - and also, very impolite.;EXIT
ACTION: 3;IFOBJ 24;SAY I'm afraid I would only cut myself.;EXIT
ACTION: 3;IFOBJ 30;IFTYPE2 A;SAY Sorry, but animal language is not included in this volume!;EXIT
ACTION: 3;IFOBJ 30;IFTYPE2 V;SAY I am sure we will get along without it in this case.;EXIT
ACTION: 3;IFTYPE -;SAY Get serious!;EXIT
ACTION: 3;IFTYPE M|F;SAY You can't just use people like that!;EXIT
ACTION: 3;SAY That doesn't work.|I don't know what you are getting at.|I can't use it like that.;EXIT
/*
/* Action 4 - Open
/* ---------------
/*
ACTION: 4;IFOBJ 30;SAY It's no good if I don't use it with some foreign langauge;EXIT
ACTION: 4;IFTYPE M|F|A;SAY Get real!;EXIT
ACTION: 4;SAY It doesn't open.|Sorry, it can't be opened.|It's impossible.;EXIT
/*
/* Action 5 - Talk to
/* ------------------
/*
ACTION: 5:IFTYPE D;IFTYPE G;SAY I could, but #OBJ1 make a lousy audience!;EXIT
ACTION: 5;IFTYPE G;SAY I'd rather not disturb them.;EXIT
ACTION: 5;IFTYPE A;SAY If I could talk to the animals... I'd be in a musical, and not in this stupid adventure!;EXIT
ACTION: 5;IFTYPE F;SAY I have other things to do besides chatting up every woman I see!;EXIT
ACTION: 5;IFTYPE M;SAY I sense some communication problems here - let's skip it!;EXIT
ACTION: 5;SAY It does not seem very talkative.|I would be better off talking to a wall than a #OBJ1.;EXIT
/*
/* Action 6 - Push
/* ---------------
/*
ACTION: 6;IFTYPE -;SAY You seem slightly delirious again!;EXIT
ACTION: 6;IFTYPE M|F;SAY You can't go around pushing people like that!;EXIT
ACTION: 6;IFTYPE A;SAY It might push back - or something worse.;EXIT
ACTION: 6;SAY That doesn't seem like a good idea to me.|There is no use in pushing that.|Don't push it!;EXIT
/*
/* Action 7 - Close
/* ----------------
/*
ACTION: 7;IFTYPE M;SAY You mean shut him up? I don't think so...;EXIT
ACTION: 7;IFTYPE F|A;SAY I can't do that.;EXIT
ACTION: 7;SAY It doesn't close.;EXIT
/*
/* Action 8 - Look at
/* ------------------
/*
ACTION: 8;MOBJ
ACTION: 8;IFOBJ 1;IFOF 1=0;SAY These are sheep's anklebones.;SAY If they were only a little shorter, they would form almost perfect cubes.;EXIT
ACTION: 8;IFOBJ 1;IFOF 1=1;SAY These bones have been carved to the shape of cubes.;EXIT
ACTION: 8;IFOBJ 4;IFOF 1=0;SETOF 1=1;NAME ticket
ACTION: 8;IFOBJ 4;SAY This is a ticket for a single journey from Jerusalem to Baghdad.;SAY But it's been used.;EXIT
ACTION: 8;IFOBJ 6;SAY This map shows the major official buildings in Baghdad.;EXIT
ACTION: 8;IFOBJ 10;IFOF 1=0;SAY It's empty.;EXIT
ACTION: 8;IFOBJ 14;SAY It smells a bit, but it's a good, strong net.;EXIT
ACTION: 8;IFOBJ 21;SAY It's an ordinary seagull's feather.;EXIT
ACTION: 8;IFOBJ 24;SAY It is small, but Swedish blades bite, no matter what size!;EXIT
ACTION: 8;IFOBJ 27;IFOF 1=1;SAY It is "The Hitchhiker's Guide to the Middle and Far East";EXIT
ACTION: 8;IFOBJ 30;SAY "Anglo/Saxon/Hindi/Arabic/Nordic Dictionary and Phrase Book".;EXIT
ACTION: 8;SAY I don't see anything special.|OK. So what's the big deal?|Nothing special to report.;EXIT
/*
/* Action 9 - Pull
/* ---------------
/*
ACTION: 9;IFTYPE G;SAY What do you mean - pull their legs??;EXIT
ACTION: 9;IFTYPE M;SAY What do you mean - pull his leg??;EXIT
ACTION: 9;IFTYPE F;SAY What do you mean - pull her hair??;EXIT
ACTION: 9;IFTYPE A;SAY No, it might pull back - or something worse.;EXIT
ACTION: 9;SAY That doesn't seem like a good idea to me.|I really don't think I can pull that off...!|I'd rather pull myself together first.;EXIT
/*
/* End of boot file - There must be some comments here, otherwise the last
/* command is not regarded.